package com.ark.common.domain.entity.sys;

import com.ark.common.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Set;

@Data
@TableName("sys_role")
@EqualsAndHashCode( callSuper = true)
public class SysRole extends BaseEntity {
    /**
     * 角色ID，主键，自增
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 角色名称
     */
    private String roleName;

    /**
     * 角色标识
     */
    private String roleKey;

    /**
     * 用户账号是否可用状态（0:正常/1：停用）
     */
    private Integer status;

    /**
     * 删除标记
     */
    private Integer delFlag;

    /**
     * 角色拥有的权限
     */
    @TableField(exist = false)
    private Set<String> permissions;

    /**
     * 是否是管理员角色
     */
    @JsonIgnore
    public boolean isAdmin()
    {
        return isAdmin(this.id);
    }

    public static boolean isAdmin(Long roleId)
    {
        return roleId != null && 1L == roleId;
    }
}
